package controle;
import vue.panneau1.*;
import modele.*;
import java.awt.Color;
import java.awt.event.*;

public class ControleActionEquation2D implements ActionListener
{
	private Interface2DZone1 zone2D;
	
	public ControleActionEquation2D(Interface2DZone1 zone2D)
	{
		this.zone2D = zone2D;		
	}

	public void actionPerformed(ActionEvent e) 
	{
		String cmd = e.getActionCommand();
		
		if(cmd.equals("choisir_libelle"))
		{
			new PopupChoixLibelleVariables2D(zone2D);
		}
		
		if(cmd.equals("choisir_couleur"))
		{
			zone2D.choisirCouleur();
		}
		
		if(cmd.equals("ajouter"))
		{
			String sx1,sx2,pdt,op;
			Color couleur;
			
			sx1 = zone2D.getValeurContrainte("x1");
			sx2 = zone2D.getValeurContrainte("x2");
			pdt = zone2D.getValeurContrainte("partieD");
			op = zone2D.getOperateur();
			couleur = zone2D.getCouleurChoisie();
			
			if(!(sx1.equals("") || sx2.equals("") || pdt.equals("")))
			{	
				float x1 = zone2D.getFloatContrainte("x1");
				float x2 = zone2D.getFloatContrainte("x2");
				float partieD = zone2D.getFloatContrainte("partieD");
				
				if(!(x1 == 0 && x2 == 0)) 
				{
					zone2D.ajouterEquation(new Equation2D(x1,x2,op,partieD,couleur,""));
				}
			}
		}
		
		if(cmd.equals("supprimer"))
		{
			zone2D.supprimerEquation();			
		}
		
		if(cmd.equals("optimiser"))
		{
			String sx,sy,sc;
			
			sx = zone2D.getOptValeurX1X2("x1");
			sy = zone2D.getOptValeurX1X2("x2");
			sc = zone2D.getOptChoix();
			
			if(!(sx.equals("") || sy.equals("")))
			{	
				float x1 = zone2D.getOptFloatX1X2("x1");
				float x2 = zone2D.getOptFloatX1X2("x2");
				
				boolean optimiser = new Boolean("");
				if(sc.equals("Minimiser"))
				{
					optimiser = false;
				}
				if(sc.equals("Maximiser"))
				{
					optimiser = true;
				}
				
				zone2D.optimiser(new FonctionAOptimiser2D(x1,x2,optimiser));
			}			
		}
	}
}
